import { defineStore } from "pinia";
import PiniaPersistConfig from "@/config/piniaPersist";
//  `defineStore()` 的返回值的命名是自由的
// 但最好含有 store 的名字，且以 `use` 开头，以 `Store` 结尾。
// (比如 `useUserStore`，`useCartStore`，`useProductStore`)
// 第一个参数是你的应用中 Store 的唯一 ID。
interface UserInfo {
  username: string;
}
interface UserState {
  token: string;
  userInfo: UserInfo;
}
export const useUserStore = defineStore("user", {
  state: (): UserState => ({
    token: "",
    userInfo: {
      username: "",
    },
  }),
  getters: {},
  actions: {
    setToken(val: string) {
      this.token = val;
    },
  },
  persist: PiniaPersistConfig("user", ["token", "userInfo"]),
});
// 使用
// const store = useStore();
// 单个参数修改值，可直接使用store.count++
// store.count++;
// console.log(store.count, "store.count");

// 对于一起修改多个参数，可使用store.$patch
// store.$patch({
//   count: store.count + 1,
//   age: 120,
//   name: 'DIO',
// })

// 建一个登录页面模拟登录，能够将token存入store，并持久化存储
